#pragma once

#include "Window.h"
#include "Component.h"
#include <vector>
#include <string>

class Frame : public Window {
public:
	Frame(const std::wstring title = (L""), const std::wstring id = (L"frame" + std::to_wstring(++frameId)));
	virtual ~Frame();

	static const byte EXIT_ON_CLOSE = 1;
	static const byte DISPOSE_ON_CLOSE = 2;
	static const byte HIDE_ON_CLOSE = 3;

	void setDefaultCloseOperation(const byte op);
	void add(Component& com);

protected:
	virtual LRESULT processMessage(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);

private:
	static int frameId;

	byte closeOp;
	std::vector<Component*> components;
};

